package com.lfg.json.script.node.stmt;

import com.alibaba.fastjson.JSON;

import java.util.*;

public class AssignStmtTest2 {

    public static void main(String[] args){
        System.out.println(JSON.toJSONString(cac(new Integer[]{-1,0,1,2,-1,-4})));
    }

    public static List<List<Integer>> cac(Integer[] list){
        Set<List<Integer>> ret = new HashSet<>();
        Map<Integer,Integer> map = new HashMap<>();
        for(Integer num : list){
           Integer v =  map.get(num);
           if(v == null){
               map.put(num,1) ;
           }else{
               map.put(num,v+1);
           }
        }
        for(int i=0;i<list.length;i++){
            int num1 = -list[i];
            Integer v1 = map.get(list[i]);
            if(v1 == 1){
                map.remove(list[i]);
            }else{
                map.put(list[i], v1-1);
            }
            for(int j=i+1;j<list.length;j++){
                Integer v2 = map.get(list[j]);
                if(v2 == 1){
                    map.remove(list[j]);
                }else{
                    map.put(list[j], v2-1);
                }

                Integer num2= num1-list[j];
                if(map.containsKey(num2)){
                    ArrayList<Integer> list1 = new ArrayList<>();
                    list1.add(list[i]);
                    list1.add( list[j]);
                    list1.add( num2);
                    Collections.sort(list1);
                    ret.add(list1);
                }

                map.put(list[j], v2);

            }
        }


        return new ArrayList<>(ret);

    }
}